Method for adaptive mission execution on an unmanned aerial vehicle

ABSTRACT

A method for adaptive mission execution by an unmanned aerial vehicle includes receiving a set of pre-calculated mission parameters corresponding to an initial UAV mission; collecting UAV operation data during flight of the unmanned aerial vehicle; calculating a set of modified mission parameters from the set of pre-calculated mission parameters and the UAV operation data, the set of modified mission parameters corresponding to a modified UAV mission; and executing the modified UAV mission on the unmanned aerial vehicle.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.14/717,955, filed 20 May 2015, which claims the benefit of U.S.Provisional Application No. 62/000,933, filed on 20 May 2014, and ofU.S. Provisional Application No. 62/045,473, filed on 3 Sep. 2014, allof which are incorporated in their entireties by this reference.

TECHNICAL FIELD

This invention relates generally to the field of unmanned aerialvehicles and more specifically to a new and useful method for adaptivemission execution on an unmanned aerial vehicle in the field of unmannedaerial vehicles.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 is a chart representation of a method of a preferred embodiment;

FIG. 2 is a system diagram representation of an unmanned aerial vehicle;

FIG. 3 is a schematic representation of example mission modification ofa method of a preferred embodiment; and

FIG. 4 is an example representation of a mission parameter adjustmentdisplay.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

The following description of the preferred embodiments of the inventionis not intended to limit the invention to these preferred embodiments,but rather to enable any person skilled in the art to make and use thisinvention.

As shown in FIG. 1, a method 100 for controlling an unmanned aerialvehicle (UAV) includes: receiving a set of a pre-calculated missionparameters corresponding to an initial UAV mission S110, collecting UAVoperation data during flight of the UAV S130, calculating a set ofmodified mission parameters based on the UAV operation data S140, andexecuting the modified mission on the UAV S150. The method 100 mayadditionally or alternatively include executing the initial UAV missionS120, and/or executing a pre-mission test S125.

Generally, the method functions to test operation of a UAV during orjust prior to a execution of a mission by the UAV, to check the statusof the UAV against a flightpath for the mission, and to adjust theflightpath and/or other mission parameters if necessary to ensure thatthe UAV can complete the mission satisfactorily. For example, the methodcan analyze operation data of the UAV to detect a state of charge of abattery within the UAV, to detect a stability of the UAV airframe,and/or to detect a maximum speed and a stall speed of the UAV, etc., andthe method can then adjust a cruise speed, a ground area to be covered,the flightpath, etc. for the mission to substantially ensure that theUAV—in its current measured state—can complete the mission (e.g., asurveillance mission, a logistics or delivery mission, or a mappingmission). The method can similarly model operation of a particular UAVbased on UAV flight data collected during a test flight flown by theparticular UAV, and the method can then pass the model of the particularUAV to a mission generator such that subsequent missions generated forthe particular UAV can accommodate or compensate for a substantiallyunique configuration, condition, etc. of the particular UAV, which maydiffer in configuration or condition from other UAVs in a fleet of UAVs.For example, the method can collect battery capacity data, motorefficiency data, fuselage capacity and stability data, etc. of the UAVas the UAV flies a standardized test flight and then calculate apreferred cruise speed based on motor efficiency, a minimum air flightspeed, a maximum air speed, and/or a relationship between total (air orground) range relative to air speed, etc. of the UAV. In this example,at a later date following the standardized test flight, a missiongenerator can then access these calculated values and implement thesevalues as parameters to generate a flight path of the UAV over a groundarea of interest such that the flight path inherently accommodateslimitations of the UAV.

The method can further function to track usage of (e.g., hours on) oneor more components of the UAV, to compare usage of these components tocomponent use regulations and/or manufacturer use suggestions, and toprompt an owner or operator of the UAV to preemptively swap outcomponents of the UAV as these components reach the end of theirrespective useful or regulated lives. For example, the method cancollect motor speed data during each mission flown by a UAV to track atotal number of hours of operation of the UAV motor (or a total numberof rotations of the motor throughout missions flown by the UAV), comparethe total hours of operation on the motor to the manufacturer'ssuggested total hours on the model of motor before replacement orrebuild, and then transmit a notification (e.g., a message, an email) toan account of an operator associated with the UAV to prompt the operatorto replace or rebuild the motor. The method can also automaticallydetect changes to the UAV, such as replacement of a motor, a propeller(or “prop”), a control surface actuator, a battery, or all or a portionof the fuselage, etc., and the method can automatically update adatabase of log data specific to the UAV to account for such change. Forexample, the method can calculate a relationship between air speed ofthe UAV and current draw of the motor during the test flight, comparethis calculated relationship to a similar relationship calculated forthe UAV during a previous flight or test flight to determine if a newmotor was swapped into the UAV prior to the current test flight, andupdate a log of specific to the UAV to reflect this change in motors. Inparticular, in this example, the method can reset a time counter for amotor within the UAV to “o” to reflect detected installation of a newmotor into the UAV.

The method can therefore collect data from a UAV and manipulate thesedata to modify pre-calculated flight paths and to log use of various(critical) components of the UAV. The method can therefore executeremotely from the UAV, such as on a remote computer system thatgenerates missions for one or more UAVs (e.g., a fleet of UAVs)according to selected ground areas of interest and/or that controls UAVsremotely during execution of missions. The computer system can be acloud-based computer (e.g., Amazon EC2), a mainframe computer system, agrid-computer system, or any other suitable computer system. Forexample, the computer system can be a remote server that communicateswith one or more UAVs over HTTP (or TCP or UDP) protocols through a webservice (e.g., Amazon AWS). The computer system can thus transmit data(e.g., mission commands, flight paths, UAV location, UAV operation data)to and from a UAV over a cellular, Wi-Fi, satellite, or other suitablewireless network. Alternatively, the method can be implemented on alocal computing device. For example, a local flight control stationspecific to one or more UAVs and including a wireless radio canimplement the method to communicate with the UAV(s) directly over acellular communication protocol before, during, and/or upon completionof the mission. Yet alternatively, the method can be implemented by acomputing device arranged in the UAV within the fleet. For example, aUAV can incorporate a processor that interfaces with an autopilot moduleand a wireless transceiver within the UAV to collect UAV operation data(e.g., GPS data, telemetry data, sensor status data, networkconnectivity data, etc.), to manipulate the UAV operation data, to logthe operation data, to transmit prompts to an operator, and/or to modifya flightpath according to detected limitations of the UAV. However, themethod can be implemented by any one or more of a remote computersystem, a local flight control station, or one local computing devicearranged in a UAV. For example, in a default setting, the method can beimplemented by the remote computer system but, when long-range wireless(e.g., cellular) communication with the fleet is lost, a local computingdevice within a UAV can assume a master control position and implementremaining elements of the method until long-range wireless communicationis regained. However, the method can be implemented in any othersuitable way.

The method can therefore execute in conjunction with a UAV thatincludes: flight control surfaces; actuators configured to manipulatethe flight control surfaces; a motor; a prop; an autopilot moduleconfigured to control the actuators and the propulsion assemblyaccording to a scheduled flightpath; a co-pilot module providing aninterface between a remote computer network and the autopilot module,actuators within the UAV, and sensors within the UAV; and a fuselagesupporting the flight control surfaces, the actuators, the autopilotmodule, the propulsion assembly, and the co-pilot module, as shown inFIG. 2. The UAV can also include various sensors, such as athree-dimensional optical sensor, (e.g., a LIDAY system, a stereoscopiccamera), a two-dimensional sensor (e.g., a CMOS digital camera, athermal imaging sensor), and/or a single-dimensional sensor (e.g., achemical sensor, a temperature sensor, a barometric sensor), etc., thatcapture data during missions executed by the UAV, and the co-pilotmodule can interface with a wireless communication module within the UAVto upload data from these sensors (and actuator data) to a remotedatabase executing all or a portion of the method. The UAV can thereforeinclude a fixed-wing aircraft. Alternatively, the UAV can include avertical takeoff and landing (VTOL) aircraft. The UAV can also be acomponent of an unmanned aerial system (UAS) that includes sensors,ground control software (GCS), infrastructure (e.g., radios, a missioncontrol station), support crews, maintenance crews, etc.

S110 includes receiving a set of a pre-calculated mission parameterscorresponding to an initial UAV mission. The set of pre-calculatedmission parameters preferably include a UAV flightpath (specified byglobal coordinates or any other coordinate system, including localcoordinate systems), but may additionally or alternatively include anyparameters corresponding to a UAV mission (e.g., altitude, air speed,ground speed, flight time, flight control surface positions, camerashutter events, actuator settings, etc.). For example, the set ofpre-calculated mission parameters may include a set of waypoints for theUAV to fly along, along with a set of parameters specifying when a UAVcamera should take aerial photographs along the route.

S110 preferably includes receiving pre-calculated mission parameters atthe UAV from a remote server over a wireless internet connection (e.g.,a cellular connection), but may additionally or alternatively includereceiving pre-calculated mission parameters in any suitable manner(e.g., via a flash drive plugged into the UAV).

S120 includes initiating execution of the initial UAV mission. S120functions to begin UAV flight (and/or other operations) according to thepre-calculated mission parameters. The method 100 may include S120 for anumber of reasons; e.g., if the UAV is expected to be able to completethe initial mission. If data collected during the initial UAV missionindicates a less-than-satisfactory mission outcome (as collected andanalyzed in S130), the mission may be modified (S140 and S150).

S125 includes executing a pre-mission test. In one implementation, thepre-mission test is a standardized test defining a test flightpathsuitable to test various components of the UAV, such as a motor, abattery, a prop, a fuselage, and/or control surfaces of the UAV, and theco-pilot within the UAV can interface with various sensors and actuatorswithin the UAV to collect data for these components as the UAV executesthe test flightpath. For example, the pre-mission test can define: afirst portion of the test flightpath specifying level flight at analtitude of loom at full power from which a maximum air speed of the UAVis determined; a second portion of the test flightpath specifying anear-vertical climb from loom altitude from which a maximum thrust ofthe UAV is determined; a third portion of the test flightpath specifyinga decrease in air speed until stall is achieved from which a stall speedof the UAV is determined; a fourth portion of the test flightpathspecifying a cycling ramping the motor from a no-power to a full-powersetting from which a motor torque curve, a maximum motor torque, a motorefficiency curve, a propeller efficiency, a battery state of charge,and/or a maximum battery supply current, etc. of the UAV is calculated;and a fifth portion of the test flightpath specifying cycles of pitch,yaw, and/or roll control surfaces from which an efficiency of thefuselage and/or a weight of the fuselage is calculated. For example, thetotal standardized pre-mission test sequence can be completed within aperiod of sixty seconds prior to execution of a mission thirty-minutesin duration. However, the standardized pre-mission test sequence candefine any other flightpaths or operations from which various UAVparameters or functions can be calculated.

Pre-mission tests may test any UAV components, including any sensorscoupled to the UAV (e.g., cameras, chemical sensors, photodetectors,microphones, RADAR/SONAR sensors, etc.)

In addition or as an alternative to UAV component tests, pre-missiontests may include flightpaths or other operations directed to measuringcharacteristics of the flight environment (e.g., air temperature, windspeed, obstacles present in a particular area, etc.).

In one variation, S125 may include performing an “on-boarding” flighttest when a (new) UAV is added to a UAV fleet or during a “reset” flighttest following a rebuild. For example, the UAV can takeoff, execute thepre-mission test sequence, offload any of the foregoing data to theremote UAV management network, and then land again without executinganother mission, S130 can characterize the UAV from these data, and theremote UAV management network can implement this characterization of theUAV when generating flight paths and flight parameters of the UAV insubsequent missions designating the UAV and elected by an operator.

The method 100 may include either or both of S120 and S125. For example,the method may include performing a pre-mission test (S125), passing thepre-mission test, and then initiating execution of the initial missionwithout modification (S120).

S130 includes collecting UAV operation data during flight of the UAV.S130 functions to collect UAV operation data (e.g., UAV component data,UAV sensor data, environmental data, etc.) for purposes of modifying theinitial UAV mission.

UAV operation data preferably includes any data relevant to UAVoperation; e.g., air speed, heading, ground speed, position,orientation, camera data, air temperature data, actuator status, sensordata, payload data, UAV communication data, UAV flightpath, andhumidity. In particular, UAV communication data may include missionparameters transmitted/received by other UAVs. For example, a first UAVmay update a flightpath for aerial photography and then transmit thatupdated flightpath to other UAVs. If the new flightpath intersects withany other UAV's flightpath, the intersecting UAV may alter itsflightpath to avoid covering the same area redundantly (unlessoverlapping coverage is desired).

S130 may be performed at any time, including during a pre-mission testand/or in real-time during a mission.

S130 preferably includes collecting UAV operation data at the UAV, butmay additionally or alternatively include transmitting UAV operationdata to be collected by a remote computer. For example, the UAV co-pilot(or other processor, memory module, etc.) within the UAV can sample theautopilot, various sensors, and various actuators within the UAV, suchas according to an internal or external clock and a preset sampling rate(e.g., 20 Hz) and then upload these data substantially in real-time to aremote computer network over wireless communication. A remote UAVmanagement network can receive data downloaded from the co-pilot overcellular communication protocol as these data are collected at the UAV.Alternatively, collected data could be retrieved in bulk upon completion(or abortion) of a mission or pre-mission test sequence.

S130 may include processing raw data received at the UAV (or remotecomputer). For example, S130 may include calculating a motor efficiencybased on motor rotational speed and airspeed.

In one example, S130 includes receiving an output voltage (and/or anoutput current) of a main battery within the UAV at various throttlesettings of the motor, such as at 0%, 25%, 50%, 75%, and 100% throttlesettings, and then transforming these voltage readings into batterystate of charge based on a known discharge curve of the battery. S130can alternatively include integrating a current output of the batteryover time, implementing Kalman filtering, or monitoring an internalpressure of the battery to calculate a state of charge of the battery.S130 can then calculate a range of the UAV based on the state of chargeof the UAV, and also accommodate for wind conditions over a ground areaover which the UAV will fly during the mission to calculate total grounddistance that the UAV can traverse in its current state. In anotherexample, S130 can record collect steady state temperatures within thefuselage for various throttle settings of the motor, and calculate amaximum allowable throttle setting or a maximum allowable current drawfor the current mission based on a maximum allowable battery and/orfuselage temperature for the UAV. In a similar example, S130 can collectsteady state temperatures of the motor at various throttle settings, andidentify a maximum air speed of the UAV based on a maximum allowabletemperature of the motor. In another example, S130 can collectacceleration and rotation data from an accelerometer and a gyroscopearranged within the UAV during various maneuvers executed by the UAVduring the pre-mission test sequence, and characterize pitch, yaw, androll responses of the UAV to manipulation of the control surfaces todetect a stability of the UAV flight. In this example, S130 candetermine that the UAV is unstable and therefore unfit for flight if theUAV exhibits extreme changes pitch, yaw, and/or roll in response to asmall change in the position of a control surface, if the UAV exhibitsno change in pitch, yaw, and/or roll in response to a large change inthe position of a control surface, or if constant manipulation of thecontrol surfaces is required for the UAV to fly in a straight line. Inthis example, S130 can also determine a tightest turning radius (at oneor more cruise speeds), climb rate, and/or descent rate of the UAV fromthese rotation and acceleration data. However, S130 can collect and/orreceive UAV operation data in any other way and extract any one or moreUAV characteristics from these data.

In one implementation, S130 is executed by a computer network thatreceives data from the UAV in raw, unprocessed form or in compressedform; the network can then process these data to determine if the UAV iscapable of competing a current mission (within a reasonable degree ofcertainty). Alternatively, the UAV can execute all or a portion of S130locally and then upload results (e.g., a calculated motor torque curve,maximum motor torque, motor efficiency curve, propeller efficiency,battery state of charge, maximum battery supply current, etc.) to thecomputer network.

S140 includes calculating a set of modified mission parameters based onthe UAV operation data. S140 is preferably executed in response to adetermination or estimation that the UAV is unable to complete theinitial mission, based on data collected during the pre-mission testand/or execution of the initial mission. Additionally or alternatively,S140 may be performed at any time in response to any stimulus; forexample, a set of modified mission parameters may be calculated inresponse to a user request for mission modification.

S140 may include comparing UAV characteristics (as collected andprocessed in S130) to characteristics required for performance of theset of pre-calculated mission parameters to determine if the UAV iscapable of completing the mission as currently defined and/or whatmodification to the mission may be necessary to increase odds ofsuccess.

In one implementation, UAV component data is manipulated to generate acurve defining predicted total ground distance that can be covered bythe UAV relative to ground speed of the UAV, based on a state of chargeof the battery within the UAV, a curve defining a relationship betweenair speed and battery output power (and bounded by the maximum air speedand stall speed of the UAV), and a current (or forecast) weathercondition (e.g., wind speed and direction) at the location specified inthe mission (e.g., as collected from a remote weather database). In thisimplementation, a total ground distance that must be covered by the UAVto complete the mission as currently defined can be calculated andcompared to a maximum total ground distance that can be traversed by theUAV in its current state to determine if the UAV can complete themission. (In this implementation, local weather (e.g., wind) data can beapplied to this comparison, such as by accessing local wind data from aremote weather database.) If the total ground distance required tocomplete the mission does not exceed the total estimated ground range ofthe UAV, the UAV can begin the mission as currently prescribed.Alternatively, an air speed specified in the mission parameters can beadjusted to increase an efficiency of the UAV during the mission, suchas by setting a target air speed of the UAV at an air speedcorresponding to a best compromise of maximum motor efficiency andmaximum battery efficiency, and updating parameters of the mission toreflect this new target air speed for the UAV during execution of themission. Alternatively, S140 can calculate a maximum air speed of theUAV at which the UAV can still complete the mission in order to reducetotal flight time of the UAV (and therefore total operator cost) forcompletion of the mission, update parameters of the mission to reflectthis new target air speed for the UAV.

However, in this implementation, if the total ground distance to becovered by the UAV during the mission exceeds the total range capacityof the UAV, S140 can include altering the mission to accommodate thisdeficiency of the UAV. For example, S140 can change a primary directionof flight of the UAV during the mission to reduce a duration of themission over which the UAV flies directly into the wind, therebyextending a ground distance that can be traversed by the UAV duringexecution of the updated mission. In another example in which themission specifies a ground area of interest for the UAV to image with acamera installed therein, S140 can reduce a size of the ground area ofinterest such that a total ground distance that the UAV must cover toachieve a target lateral step-over distance and a target longitudinalstep-over distance between images captured by the UAV without exceedingthe estimated total ground range of the UAV, such as shown in FIG. 3. Ina similar example, in which the mission specifies a ground area ofinterest for the UAV to image with a camera installed therein, S140 canincrease an altitude at which the UAV is to capture images of aspecified ground area to reduce a number of cut-back sections of theflight path of the mission to reduce a total ground distance that mustbe covered by the UAV to fully image the area of interest. In anotherexample, S140 can determine that a target cruise speed of the UAV is tolow or too high for the UAV to complete the mission as currentlyspecified, and S140 can thus set a new target cruise speed for themission such that the UAV can operate at an improved efficiencysufficient to complete other parameters of the mission. In yet anotherexample, S140 includes splitting the mission into segments. Missionsegments may then be executed serially or in parallel by one or moreUAVs.

S140 can therefore handle data from multiple UAVs to generate and/ormanipulate corresponding missions parameters. However, S140 can alterany other parameter of the mission.

In one implementation, a UAV executes a mission to take aerialphotographs of a particular area. The photographs collected by the UAVare analyzed in S130 (by the UAV and/or by a remote computer); anyimages deemed unsatisfactory (e.g., a particular area covered in shadow,a blurry photograph) may result in the flight plan of the UAV beingmodified to recapture the areas of issue.

In another implementation, a UAV executes a mission following an oilpipeline while taking samples with a hydrocarbon sensor. If the UAVdetects anomalies in sensed hydrocarbon data collected in S130 (e.g., anunexpectedly high level of a particular hydrocarbon), the mission may bealtered by S140 to provide further information on areas containing theanomalies (e.g., the flightplan may be altered to a spiral patternmapping a circle centered on the anomaly).

In a variation of a preferred embodiment, S140 may include prompting anoperator to select a type of change to be made to the mission and/or toconfirm a proposed change to the mission. For example, S140 can presentprompts to the operator—such as through an operator interface accessedthrough a web browser—to select one of longer mission time (e.g., due toreduced UAV cruise speed), reduced image resolution (e.g., due toincreased altitude during imaging passes or increased step-over distancebetween imaging passes), or reduced size of ground area of interest(e.g., from removal of a portion of the original ground area of interestfrom the modified mission). In another example, S140 can prompt the userto set a position of a slider bar along a continuous slider defining a“greatest distance” position at one extreme and a “longest mission time”at an opposite extreme, and S140 can adjust parameters of the missionaccording to a compromise elected by the user through manipulation ofthe slider bar, as shown in FIG. 4. In another example, S140 can promptthe operator to confirm the modification, to cancel to mission, or toselect a different UAV to perform the mission. S140 can also account fora margin of safety for calculating a range of the UAV and modifyingmission parameters according to substantially ensure that the UAV willsuccessfully land in a designated area.

In this variation, S140 can then upload an updated mission (or discretemodified parameters of the mission) to the UAV followed by a trigger tobegin execution of the updated mission.

In yet another variation of a preferred embodiment, S140 can determinethat the UAV cannot complete the mission as currently defined or receiveconfirmation from an operator to abort the mission, and thus ordergrounding of the UAV (performed by S150). For example, S150 can transmita prompt to the UAV to immediately execute a landing sequence defined atan end of the mission currently loaded onto the UAV.

S150 includes initiating execution of the modified mission on the UAV.S150 preferably includes implementing modifications to the initialmission indicated by the modified mission parameters calculated in S140.S150 preferably includes executing modified mission parameters inreal-time (e.g., if mission parameters are updated mid-mission) but mayadditionally or alternatively execute modified mission parameters at anytime. For example, if modified mission parameters are calculated basedon data collected during a pre-flight test, the modified missionparameters may be implemented whenever the modified mission is scheduledto begin (e.g., immediately after the pre-flight test, after a re-chargefollowing the pre-flight test, or at any other time).

Data Logging

The method 100 may additionally include logging operation data of theUAV collected during execution of the prescribed mission by the UAV,and/or prompting an operator associated with the UAV to exchange acomponent within the UAV based on the operation data and a projectedlife of the component if necessary. Generally, logging operation datafunctions to collect data pertaining to use of the UAV and itssubsystems over the course of various missions and to aggregate thisdata into logs through which discrete components or subsystems of theUAV can be monitored. Furthermore, as the UAV completes one missionafter the next and as components and subsystems within exhibitincreasing amounts of wear, component and subsystem logs can be comparedto regulated or recommended component and subsystem lifespans anddeliver prompts for preemptively exchanging components and subsystems ofthe UAV before predicted or projected failure.

A variety of data can be collected from the UAV during across variousmissions, such as a number of hours that the UAV is in flight, batterycharge/discharge cycles, takeoffs and landings, ground or air distancetravel, motor rotations, peak or average fuselage temperature, sunexposure, moisture (e.g., rain) exposure, peak or average batterytemperature, peak battery output current and voltage, peak or averagemotor temperature, pitch, yaw, and roll response, maximum altitude, peakor average speed, etc. and then augment discrete logs for each criticalcomponent and subsystem within the UAV with these monitored data. Thisdata may be collected as UAV operation data in S130 or may be collectedindependently/for other purposes. Data may be collected in real-time asthe UAV executes a mission or at any other time; data collected caninclude raw sensor and actuator data from the UAV, or the UAV cancompress any of these data and then transmit compressed flight data tothe remote UAV management network.

In one example, discrete logs are maintained for each of a battery, amotor, a prop, a fuselage, control surface actuators, and/or any otherhigh-wear or critical component or subsystem within a particular UAV,and these logs are stored on the remote UAV management network, in aremote database, and/or locally on the UAV, such as in memory within theco-pilot module. In this example, the UAV can distribute mission hours,charge/discharge cycle data, peak or average battery temperature, peakbattery output current and voltage, and peak or average fuselagetemperature to a battery-specific log; distribute mission hours, motorrotations, peak battery output current and voltage, and peak or averagemotor and fuselage temperature to a motor-specific log; and distributemission hours, pitch, yaw, and roll response, maximum altitude, peak oraverage speed, sun exposure, moisture exposure, takeoff and landingdata, and peak or average fuselage temperature to a fuselage-specificlog.

Logs can be stored for components and/or subsystems of a UAV under asubstantially unique identifier for the UAV or high-priority componentwithin the UAV. For example, component and subsystems logs can be storedunder an identifier pointing to the co-pilot module within the UAV, suchas to a unique serial number or wireless communication address of theco-pilot. Alternatively, component and subsystems logs can be storedunder an identifier pointing to a serial number of the fuselage or to aserial number or GPS address of the autopilot module within the UAV. UAVdata can thus be stored under a unique identifier for that UAV todistinguish data from other UAVs (e.g., in a fleet of UAVs).

Furthermore, the UAV can maintain a database of component and subsystemregulated and/or manufacture-suggested part lives, compare a log foreach critical component or subsystem within the UAV to these regulatedand/or manufacture-suggested part lives, and deliver prompts to exchangecomponents or subsystems within the UAV to an operator accordingly. Forexample, a manufacturer of a motor currently installed in the UAV cansuggest a maximum useful life of 100 hours for the motor, the UAV cancount each minute that the UAV in flight with the current motor, andtransmit a prompt to exchange the motor to an account of an operator ofthe UAV when the number of hours on the motor reaches 95 hours, 98hours, and 99 hours. In this example, the prompt can be accessed by theoperator through a notification within a native UAV managementapplication executing on a mobile computing device (e.g., a smartphone,a tablet,) or through a web browser executing on a computing device(e.g., a desktop computer, a laptop computer, a tablet). In anotherexample, a government (e.g., federal) regulation can stipulate a maximumtime of 200 hours, a maximum of two crashes, a maximum of 100 takeoffs,and a maximum heat exposure within a fuselage of 16,000° F.-hours (i.e.,an integral of fuselage temperature over time in the air) for a UAVfuselage of the type (e.g., size) of the UAV, and the UAV can track eachof these parameters in a fuselage-specific log for the UAV. In thisexample, the UAV can identify an upcoming breach of any of theseregulated parameters by the UAV (or breach of the regulation in theevent of a third crash) and deliver a corresponding notification to theoperator to replace the fuselage of the UAV with a new fuselage (i.e.,to move other actuators, sensors, and controllers from the old fuselageto the new fuselage).

Such prompts can be delivered to the operator at the beginning of amission involving the UAV, during the mission with the UAV when acomponent within UAV approaches or surpasses one or more regulated orsuggested lifespan, upon completion of the mission, and/or when theoperator and/or the UAV are near a repair shop or service center. TheUAV or UAV platform can also point the operator to stored log data ofthe UAV and/or to UAV data specific to component of the UAV referencedin the prompt. For example, an application can retrieve and open logdata of the UAV in response to selection of the prompt. Operator accessto UAV log data can therefore be handled through prompts (e.g.,notifications).

The UAV (and/or platform) can similarly cooperate to detect componentsof the UAV that have already failed and to deliver corresponding promptsto the operator to replace the failed component(s) accordingly. However,the method 100 can function in any other way to log use of one or morecomponents and/or subsystems of the UAV over a series of missions and todeliver any other suitable UAV maintenance prompt to an associatedoperator or operator account.

Component Update

The method 100 may additionally or alternatively include detecting arecent modification to a component installed in the UAV based on theoperation data and an operation history of the UAV, and/or updating aflight record of the UAV according to the detected modification.Generally, detecting a recent modification functions to characterizeoperation of one or more current components or subsystems of the UAV andto compare these characterizations to previous characterizations ofcomponents and/or subsystems within the UAV to detect a possible recentexchange of a component or subsystem of the UAV. In particular, thedetection process can extract a characteristic of a battery, a motor, aprop, a control surface actuator, and/or a fuselage of the UAV, etc.from UAV flight data collected during execution of a current pre-missiontest sequence and/or a current mission and then compare thesecharacteristics to characteristics of the same part types extracted fromUAV data collected during execution of an immediately precedingpre-mission test sequence and/or an immediately preceding mission todetect a change in one or more characteristics that would suggest thatone or more components (or subsystems) within the UAV was exchangedbetween the current and the preceding mission. Updates to the flightrecord can then function to automatically update a component orsubsystem log to reflect a new component or subsystem installed intoUAV, such as by resetting a log of a corresponding component orsubsystem for total hours, heat exposure, takeoffs, and/or crashes, etc.

The method 100 characterizes UAV components from UAV data collectedduring pre-mission test sequences executed by the UAV before eachmission such that characterizations may be generated from UAV datagenerated under substantially similar conditions (i.e., test flightpaths) across various missions on various different dates. UAV data canbe characterized wherein the data is collected from an end (e.g., afinal two minutes) of a previous flight, from a beginning (e.g., a firsttwo minutes) of a current flight, and these characterizations arecompared to automatically detect a change to a component or subsysteminstalled in the UAV.

In one example, the method 100 models a change in UAV air speed relativeto a change in motor speed from current UAV data and detects that theprop of the UAV was replaced with a different (e.g., new) prop if thenew model for UAV air speed relative to motor speed differs from a modelfor UAV air speed relative to motor speed calculated during a previousmission by more than a threshold amount. In this example, the method 100can interface with an air speed sensor, or can calculate an air speed ofthe UAV based on a local wind speed and direction (retrieved from aweather database), GPS coordinates of the UAV, and a UAV trajectory.

In another example, the method 100 models a current draw of the motorrelative to UAV air speed and detects that the motor of the UAV wasreplaced with a different (e.g., new) motor if the new model for motorcurrent draw relative to UAV air speed differs from a similar modelcalculated during a previous mission by more than a threshold amount. Inthis example, the method 100 can also compensate for a prop change inthis model. The method 100 can also compare the new motor current drawv. UAV air speed model to similar models of motor types currentlyavailable and suitable for the fuselage to predict what motor type wasinstalled into the fuselage.

In yet another example, the method 100 models a sensitivity of thepitch, yaw, and roll of the UAV to changes in flight surfaces andcompare this model to a similar model generated during a previousmission to determine if the fuselage of the UAV was repaired orreplaced. The method 100 can also manipulate this current model incomparison to the previous model to detect changes to a payload carriedby the UAV, to detect structure added to or removed from the fuselage,to detect a change in (or a new position of) a center of gravity of theUAV, or to detect a change in the weight of the UAV.

In another example, the method 100 models an output voltage of a batterywithin the UAV relative to throttle setting and compares this new modelto a similar previous model to detect replacement of a batterypreviously installed in the UAV with a new battery.

As in these examples, the method 100 can also prompt an operator toconfirm a detected change of a battery, motor, fuselage, or prop, etc.in the UAV, to enter whether the component is new, used, or refurnished,and/or to enter a make and model of the replaced component, etc. The UAVcan then update a log corresponding to an exchanged componentaccordingly.

The method can implement similar methods and techniques to process UAVdata in real-time and to make adjustment to UAV parameters substantiallyin real-time during execution of the current mission. For example, themethod can monitor a state of charge of a battery within the UAV duringa flight and then return the UAV to a launch site (or rally point,landing area, takeoff area, etc.) if the battery level approaches orreaches a threshold minimum state required to reliably return the UAV toan operator. In another example, the method can monitor local weatherconditions—such as through sensors within the UAV or data retrieved froma remote weather database—and react to changing weather conditions bychanging flight parameters of the UAV (e.g., speed, direction, attitude,subregion of a ground area of interest to fly over, etc.). In yetanother example, the method can detect changes to the UAV and/orfailures of component of the UAV while in flight and then automaticallyexecute a corrective action (e.g., to execute a glide landing routine toland the UAV in a designated landing area in response to a detectedmotor failure) and/or deliver a prompt to an operator to take acorrective action accordingly. The method can therefore implement a‘continuous test sequence’ (similar to the pre-mission test sequence) tocollect and handle UAV data during execution of a mission. However, themethod can implement any other method or technique to collect and handledata from one or more UAVs.

The UAV and methods of the invention can be embodied and/or implementedat least in part as a machine configured to receive a computer-readablemedium storing computer-readable instructions. The instructions can beexecuted by computer-executable components integrated with the vehicle,scheduling kiosk(s), a remote scheduling server,hardware/firmware/software elements of a user computer or mobile device,or any suitable combination thereof. Other systems and methods of theinvention can be embodied and/or implemented at least in part as amachine configured to receive a computer-readable medium storingcomputer-readable instructions. The instructions can be executed bycomputer-executable components integrated by computer-executablecomponents integrated with apparatuses and networks of the typedescribed above. The computer-readable medium can be stored on anysuitable computer readable media such as RAMs, ROMs, flash memory,EEPROMs, optical devices (CD or DVD), hard drives, floppy drives, or anysuitable device. The computer-executable component can be a processorbut any suitable dedicated hardware device can (alternatively oradditionally) execute the instructions.

As a person skilled in the art will recognize from the previous detaileddescription and from the figures and claims, modifications and changescan be made to the embodiments of the invention without departing fromthe scope of this invention as defined in the following claims.

1. A method for mission execution by an unmanned aerial vehicle (UAV)comprising: executing a pre-mission flight test evaluating: level flightat a first altitude with determination of an airspeed parameter of theUAV, a climb to a second altitude with determination of a thrustparameter of the UAV, and a transition of a motor of the UAV from afirst to a second power setting with determination of a range of the UAVand a weight parameter of the UAV; determining a set of missionparameters, based upon the pre-mission flight test and corresponding toan initial mission, the mission parameters defining a first area to beimaged by a camera of the UAV; initiating execution of the initial UAVmission; collecting UAV operation data during flight of the UAV, the UAVoperation data comprising aerial images taken at a first imagingresolution and flight telemetry data; calculating a set of modifiedmission parameters from the set of mission parameters and an analysis ofaerial images, the set of modified mission parameters corresponding to amodified UAV mission; and automatically executing the modified missionwith the UAV.
 2. The method of claim 1, wherein the pre-mission flighttest further evaluates at least one of: a stalling configuration withdetermination of a stall speed parameter of the UAV, battery managementparameters of the UAV, terrain features associated with the initialmission, and image overlap characteristics.
 3. The method of claim 1,wherein the pre-mission flight test evaluates the transition of themotor of the UAV from a no-power setting to a full-power setting withdetermination of a motor torque curve, a maximum motor torque, a motorefficiency curve, a propeller efficiency, a battery state of charge, anda maximum battery supply current.
 4. The method of claim 1, wherein theset of mission parameters further defines a first set of cameraparameters including an image capture setting.
 5. The method of claim 4,wherein calculating the set of modified mission parameters comprisesmodifying the first set of camera parameters based on the analysis ofaerial images.
 6. The method of claim 1, further comprising generatingthe analysis of the aerial images, wherein generating comprisesidentifying a first image of the aerial images as including at least oneof blur artifacts and shadow artifacts; wherein calculating the set ofmodified mission parameters comprises modifying the set of missionparameters to allow a subregion captured by the first image to berecaptured in another image.
 7. The method of claim 1, furthercomprising determining that a first imaging resolution from the initialmission is below a threshold, wherein calculating the set of modifiedmission parameters comprises modifying the set of mission parameterswith a second imaging resolution, wherein the second imaging resolutionis higher than the first imaging resolution.
 8. The method of claim 7,further comprising prompting a user, via a management applicationexecuting at a controller device, to set the second imaging resolution.9. The method of claim 8, wherein calculating the set of modifiedmission parameters further comprises prompting the user, via themanagement application, to accept execution of the modified missionaccording to the set of modified mission parameters.
 10. The method ofclaim 1, wherein executing the modified mission comprises executing themodified mission after initiating and before completing execution of theinitial mission.
 11. A method for adaptive mission execution by anunmanned aerial vehicle comprising: executing a pre-mission flight testevaluating: level flight at a first altitude with determination of anairspeed parameter of the UAV, a climb to a second altitude withdetermination of a thrust parameter of the UAV, and a transition of amotor of the UAV from a first to a second power setting withdetermination of a range of the UAV; determining a set of missionparameters, based upon the pre-mission flight test and corresponding toan initial mission, the mission parameters defining a first area to beimaged by a camera of the UAV; initiating execution of the initialmission with collection of a UAV operation dataset during the initialmission; and modifying behavior of the UAV based upon an analysis of theUAV operation dataset.
 12. The method of claim 11, further comprisinggenerating the analysis of the UAV operation dataset, wherein generatingthe analysis comprises generating a set of modified mission parametersfrom the set of mission parameters and an analysis of aerial imagestaken with the UAV, the set of modified mission parameters correspondingto a modified mission.
 13. The method of claim 12, wherein the set ofmission parameters comprise a first flight path and a first set of UAVflight parameters corresponding to the first flight path; wherein theset of modified mission parameters comprise a second flight path and asecond set of UAV flight parameters corresponding to the second flightpath; wherein the second flight path is modified from the first flightpath.
 14. The method of claim 12, further comprising prompting the user,via a management application executing at a controller device, to acceptexecution of the modified mission according to the set of modifiedmission parameters
 15. The method of claim 12, wherein modifyingbehavior of the UAV comprises automatically executing the modifiedmission with the UAV.)
 16. The method of claim 12, wherein generatingthe analysis comprises tracking at least one of a motor speed parameter,a propeller usage parameter, a control surface actuator usage parameter,and a fuselage usage parameter of the UAV during the initial mission;and generating a comparison between of at least one of the motor speedparameter, the propeller usage parameter, a control surface actuatorusage parameter, and a fuselage usage parameter to and its respectivelife limit.
 17. The method of claim 16, wherein modifying behavior ofthe UAV comprises pre-emptively replacing at least one of a motor, apropeller, a control surface actuator, and a fuselage of the UAV basedon the comparison.
 18. The method of claim 12, wherein generating theanalysis comprises analyzing UAV battery charge data; whereincalculating the set of modified mission parameters comprises modifyingthe set of mission parameters based on the UAV battery charge data. 19.The method of claim 18, wherein generating the analysis furthercomprises determining, from the UAV battery charge data, that theunmanned aerial vehicle is incapable of completing the initial UAVmission; wherein calculating the set of modified mission parameterscomprises verifying that the unmanned aerial vehicle is capable ofcompleting the modified UAV mission.
 20. The method of claim 12, whereincalculating the set of modified mission parameters further comprisesreceiving an input from the user regarding modification of missionparameters and calculating the set of modified mission parameters basedon the input from the user.